
package com.jf.cloud.product.mapper;

import com.jf.cloud.product.model.SpuSupplierChangeLog;
import com.jf.cloud.product.vo.SpuSupplierChangeLogVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品供应商变更记录
 *
 * @author zz
 * @date 2022-06-22 16:57:27
 */
public interface SpuSupplierChangeLogMapper {

    /**
     * 获取商品供应商变更记录列表
     * @return 商品供应商变更记录列表
     */
    List<SpuSupplierChangeLog> list();

    /**
     * 根据商品供应商变更记录id获取商品供应商变更记录
     *
     * @param spuChangeId 商品供应商变更记录id
     * @return 商品供应商变更记录
     */
    SpuSupplierChangeLog getBySpuChangeId(@Param("spuChangeId") Long spuChangeId);

    /**
     * 保存商品供应商变更记录
     * @param spuSupplierChangeLog 商品供应商变更记录
     */
    void save(@Param("spuSupplierChangeLog") SpuSupplierChangeLog spuSupplierChangeLog);

    /**
     * 更新商品供应商变更记录
     * @param spuSupplierChangeLog 商品供应商变更记录
     */
    void update(@Param("spuSupplierChangeLog") SpuSupplierChangeLog spuSupplierChangeLog);

    /**
     * 根据商品供应商变更记录id删除商品供应商变更记录
     * @param spuChangeId
     */
    void deleteById(@Param("spuChangeId") Long spuChangeId);

    /**
     * 根据商品id获取商品变更信息
     * @param spuIds
     * @return
     */
    List<SpuSupplierChangeLogVO> listBySpuIds(@Param("spuIds") List<Long> spuIds);

    /**
     * 批量上下架变更记录
     * @param spuIds
     * @param changeType
     */
    void insertBatch(@Param("spuIds")List<Long> spuIds, @Param("changeType") Integer changeType);

    /**
     * 批量插入变更记录
     * @param spuSupplierChangeLogs
     */
    void saveBatch(@Param("spuSupplierChangeLogs") List<SpuSupplierChangeLog> spuSupplierChangeLogs);
}
